Software applications typically include flaws or defects, causing the software to operate in an unintended or undesired manner. Some defects can also be exploited to gain unauthorized access to the software and/or data associated therewith. Typically, a skilled person can identify these defects by, e.g., testing the software system and analyzing human-readable source code of the software. The skilled person may then modify the source code to cure the defects, sometimes also called vulnerabilities. This processes requires reliance on skilled application developers and quality assurance (QA) personnel who have specialized understanding of software security. As such, the manual process of curing defects can be costly. It can also be time-consuming, and may extend the time-to-deliver to market within the software development life cycle (SDLC). In addition, the manual process can be error prone. For example, a cure in one part of the software may cause a new, unnoticed defect in another part. Therefore, there is a need for an improved system and/or method for curing defects in software applications.